package com.intct.hbase.namespace;

import org.apache.hadoop.hbase.NamespaceDescriptor;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;
import java.util.Arrays;
import java.util.List;

/**
 * @author gufg
 * @since 2025-11-03 14:13
 */
public class AlterNamespace {
    public static void main(String[] args) throws IOException {
        // 建立连接
        Connection conn = ConnectionFactory.createConnection();

        // 获取admin 实例
        Admin admin = conn.getAdmin();

        // 命名空间名称
        String namespace = "intct86";

        try {
            // 判断命名空间是否存在
            List<String> listNamespaces = Arrays.asList(admin.listNamespaces());

            if (listNamespaces.contains(namespace)) {
                // 命名空间描述
                NamespaceDescriptor build = NamespaceDescriptor.create(namespace).addConfiguration("intct", "intct_86").build();

                // 修改空间
                admin.modifyNamespace(build);
            }
        } catch (IOException e) {
            System.out.println("修改命名空间失败！");
        } finally {
            // 关闭资源
            if (admin != null) {
                admin.close();
            }
            if (conn != null) {
                conn.close();
            }
        }

    }
}
